package com.situ.mvc.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class HandlerInterceptor1 implements HandlerInterceptor {

	/**
	 * 第一次访问时候调用构造方法创建HandlerInterceptor对象，
	 * 后面访问只访问里面的方法
	 */
	public HandlerInterceptor1() {
		System.out.println("HandlerInterceptor1.HandlerInterceptor1()");
	}
	
   /**
    * 执行Controller方法前会执行这个方法，
    * 返回true表示继续执行，返回false表示终止执行
    * 用户权限验证，登录验证都可以写到这里
    */
	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		System.out.println("HandlerInterceptor1.preHandle()");
		return true;
	}
	
   /**
    * 执行Controller方法之后会执行这个方法，
    * 但是是在返回ModelAndView之前
    */
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		System.out.println("HandlerInterceptor1.postHandle()");
	}

   /**
    * 执行Controller方法之后并且ModelAndView视图已经返回时候执行这个方法
    * 即彻底执行完时调用
    */
	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		System.out.println("HandlerInterceptor1.afterCompletion()");
		
	}
	
}
